/* 发起请求,建立连接，触发open事件（回调函数） */
var add=document.location.host;
var curWwwPath=window.document.location.href;
//获取主机地址之后的目录
var pathName=window.document.location.pathname;
console.log(pathName);
// substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符
var projectName=pathName.substring(0,pathName.substr(1).indexOf('/')+1);
var a=add+projectName;
console.log("a:"+a)

var did=$("#did").val();
console.log("did:"+did);
var ws = null;
//判断当前浏览器是否支持WebSocket
if('WebSocket' in window){
    // alert('支持websocket')
    //连接WebSocket节点
    //document.location.host 当前页面的域名+端口号
    ws = new WebSocket("ws://"+a+"/websocket/"+did)
    console.log("======================"+ws)
}
else{
    alert('不支持websocket')
}
//连接发生错误的回调方法
ws.onerror = function(){
    setMessageInnerHTML("连接失败");
};
//连接成功建立的回调方法
ws.onopen = function(event){
    console.log("WebSocket连接成功");
    setMessageInnerHTML("WebSocket对话连接成功");
}
//接收到消息的回调方法
ws.onmessage = function(event){
    console.log(event);
    setMessageInnerHTML(event.data);
}

//连接关闭的回调方法
ws.onclose = function(){
    setMessageInnerHTML("WebSocket对话连接已经关闭");
}

//监听窗口关闭事件，当窗口关闭时，主动去关闭websocket连接，防止连接还没断开就关闭窗口，server端会抛异常。
window.onbeforeunload = function(){
    ws.close();
}

//将消息显示在网页上
function setMessageInnerHTML(innerHTML){
    document.getElementById('messagetop2').innerHTML += innerHTML + '<br/>';
    document.getElementById("messagetop2").style.color = "red";
}

//关闭连接
function closeWebSocket(){
    ws.close();
}

//发送消息
function send(){
    var dname=$("#dname").val();
    console.log("发送消息中……"+dname);
    // ws.send(dname);
    var message =$("#mes").val();
    if (message==""){
        document.getElementById('messagetop2').innerHTML = "内容为空哦";
        document.getElementById("messagetop2").style.color = "red";
    }else {var now=getNowFormatDate();//获取当前时间
        document.getElementById('messagetop').innerHTML += (now+'<br/>'+dname+"："+message) + '<br/>';
        console.log(message)
        ws.send(message);
        var message =$("#mes").val("");
    }
}

document.onkeydown=function(event){
    //IE用event.keCode方法获取当前被按下的键盘按键值
    // 而NetScape/FireFox/Opera用的则是event.which
    // which 属性指示按了哪个键或按钮
    var keyCode = event.keyCode || event.which;
    if(keyCode == "13"){ // enter 键
        send();
    }
};
//获取当前时间
function getNowFormatDate() {
    var date = new Date();
    var seperator1 = "-";
    var seperator2 = ":";
    var month = date.getMonth() + 1;
    var strDate = date.getDate();
    if (month >= 1 && month <= 9) {
        month = "0" + month;
    }
    if (strDate >= 0 && strDate <= 9) {
        strDate = "0" + strDate;
    }
    var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
        + " " + date.getHours() + seperator2 + date.getMinutes()
        + seperator2 + date.getSeconds();
    return currentdate;
}
